package com.etc.service;

import com.etc.entity.Movies;
import com.etc.entity.Orders;
import com.github.pagehelper.PageInfo;

import java.util.List;

public interface OrdersService {
    /**
     * 用户界面全部订单查询，分页
     *
     * @param user_no  用户编号
     * @param pageNum  当前页
     * @param pageSize 当前数量
     * @return PageInfo<Orders>分页对象
     */
    PageInfo<Orders> queryAllByUser(Integer user_no, Integer pageNum, Integer pageSize);

    /**
     * 管理界面全部订单查询，分页
     *
     * @param showing_no 场次编号
     * @param pageNum    当前页
     * @param pageSize   当前数量
     * @return PageInfo<Orders>分页对象
     */
    PageInfo<Orders> queryAllByShowing(Integer showing_no, Integer pageNum, Integer pageSize);

    /**
     * 用户界面详细订单查询
     *
     * @param user_no    用户编号
     * @param showing_no 场次编号
     * @return Orders订单
     */
    Orders queryDetail(Integer user_no, Integer showing_no);

    /**
     * 用户界面详细订单查询
     *
     * @param order_no 订单编号
     * @return Orders订单
     */
    Orders queryDetail(String order_no);

    /**
     * 添加订单
     *
     * @param orders 订单
     * @return boolean
     */
    boolean addOrder(Orders orders);

    /**
     * 删除订单
     *
     * @param order_no 订单编号
     * @return boolean
     */
    boolean delOrder(Integer order_no);

    /**
     * 用户页面全部订单查询
     *
     * @param user_no  用户编号
     * @param pageNum  当前页
     * @param pageSize 当前数量
     * @return PageInfo<Orders>
     */
    PageInfo<Orders> queryByUser(Integer user_no, Integer pageNum, Integer pageSize);

    /**
     * 管理页面全部订单查询
     *
     * @param movie_no 电影编号
     * @param pageNum  当前页
     * @param pageSize 当前数量
     * @return List<Orders>订单列表
     */
    PageInfo<Orders> queryByMovie(Integer movie_no, Integer pageNum, Integer pageSize);

    /**
     * 订单详情
     *
     * @param order_no 订单编号
     * @return Orders订单
     */
    Orders queryByOrder(String order_no);

    /**
     * 更新
     * @param orders 订单信息
     * @return boolean
     */
    boolean updateOrderStatus(Orders orders);

    /**
     * 求和
     *
     * @return List<Movies>
     */
    List<Movies> queryAllCount();
}
